package JavaSE.d2;

import java.util.Random;
import java.util.Scanner;

/*
	【if语句】考试系统中，转换试卷的状态
在考试系统中，状态1表示创建完成，状态2表示准备考试，状态3表示考试中，状态4表示考试结束，状态7表示删除。
程序中定义int变量表示状态，通过if语句输出中文的状态。
 */
public class Test18 {
    public static void main(String[] args) throws InterruptedException {
        //建立线程监听当前考试状态。
        Monitor set1=new Monitor();
        set1.start();


        //初始化
//        set1.interrupt();
        set1.changeSate(0);
        Random random = new Random();
        int as;
        int score=0;
        Scanner scanner = new Scanner(System.in);
        //创建完成
//        set1.interrupt();
        set1.changeSate(1);
        System.out.println("小学生考试系统");

        //准备考试

        set1.changeSate(2);
        System.out.println("你想做多少道题");
        int total=scanner.nextInt();
        System.out.println("\n\n");

        //考试中

        set1.changeSate(3);
        for (int i = 0; i < total; i++) {
            int x=random.nextInt(20);
            int y=random.nextInt(20);
            if(x>=y){
                as=x-y;
                System.out.println("**********************");
                System.out.println(x+"-"+y+"=_?_");
                if(as==scanner.nextInt()){
                    score+=1;
                    System.out.println("答案正确，加10分");
                }else {
                    System.out.println("很遗憾，加油！");
                }
                System.out.println("**********************");
                System.out.println("\n\n");
            }else {
                as=y-x;
                System.out.println("**********************");
                System.out.println(y+"-"+x+"=_?_");
                if(as==scanner.nextInt()){
                    score+=1;
                    System.out.println("答案正确，加10分");
                }else {
                    System.out.println("很遗憾，加油！");
                }
                System.out.println("**********************");
                System.out.println("\n\n");
            }
        }

        //考试结束
        set1.changeSate(4);
        if(score%2==0){
            int sc=(100/total)*score;
            System.out.println("小朋友你获得了"+sc+"分");
        }else {
            double sc=(100/total)*score;
            System.out.println("小朋友你获得了"+sc+"分");
        }

        //删除
        set1.changeSate(7);
    }

}


class Monitor extends Thread{
    int sate=0;
    //改变考试状态
    public void changeSate(int sate) throws InterruptedException {
        this.sate=sate;
        Monitor.sleep(1000);
    }
    public void run(){
        //监听考试状态
        boolean flag=true;
        while (flag){
            try {
                Monitor.sleep(800);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            switch (sate){
                case 0:
                    System.out.println("初始化考试......");
                    break;
                case 1:
                    System.out.println("创建完成......");
                    break;
                case 2:
                    System.out.println("准备考试......");
                    break;
                case 3:
                    System.out.println("考试中......");
                    break;
                case 4:
                    System.out.println("考试结束......");
                    break;
                case 7:
                    System.out.println("考试删除......");
                    flag=false;
                    break;
            }
        }
    }
}
